home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
rbbs_pc
/
msgtos13.zip
/
MSGTOSS.DOC
< prev
next >
Wrap
Text File
|
1990-03-31
|
122KB
|
2,905 lines
MSGTOSS Version 1.3
High-Performance FidoNet Message Tosser for RBBS-PC
Released 03/31/90
Copyright (c) 1989-90, Mike Zakharoff
FidoNet 1:343/36 RBBS-NET 8:918/1
Data:(206)631-3231
INTERSTATE BBS NETWORK
P.O. BOX 58813
Renton, WA 98058
ALL RIGHTS RESERVED
PAGE: 1
MSGTOSS Version 1.3
TABLE OF CONTENTS
-----------------
Table Of Contents...................................... 2
Purpose................................................ 3
Speed Of Message Importing............................. 3
Msgtoss Is Shareware................................... 3
Warranties............................................. 4
What Msgtoss Won't Do.................................. 4
Credit Where Credit Is Due............................. 4
Msgtoss Beta Testers................................... 4
Rbbs Conferences Verses Echomail Doors................. 5
Assumptions............................................ 6
Msgtoss Theory Of Operation............................ 6
Un-arch Mail Packets................................ 6
Analyze Pkt Files................................... 7
Purge/expand Message Bases.......................... 7
Sysop And User Messages.......................... 8
Tossing Into Rbbs Message Bases.................. 9
Duplicate Messages............................... 9
Oversized Messages............................... 9
Bad Date, Message Header......................... 9
Unknown Messages................................. 10
Setting The Right Margin Of The Messages......... 10
Stripping Out Echomail Control Lines............. 10
Elastic Message Bases............................ 11
Extremely Large Message Bases.................... 11
Tossing Display.................................. 12
After Tossing The Packet......................... 12
Set Mailwaiting Bit................................. 13
Create Log File..................................... 13
Create Misc Bat/cmd/ctl Files....................... 14
Theory Of Operation Summary............................ 15
Msgtoss.bbs Areas File................................. 15
Msgtoss.bbs File.................................... 15
General............................................. 15
Rbbs Message Bases.................................. 16
Fido Style Conferences.............................. 16
Msgtoss.cfg Configuration File......................... 17
Command Line Switches.................................. 25
Msgtoss Utilities...................................... 30
Installation........................................... 32
Important Spaz Information.......................... 34
Preliminary Testing................................. 34
First Tossing Test.................................. 35
Frontend Mailer Batch File Modification............. 35
Batch File Example.................................. 36
Bad Packets, Severe Errors, Overflows.................. 37
Epilog................................................. 38
Performance Optimization............................... 38
Msgtoss.eid Database File Structure.................... 40
Revisions/bug Fixes.................................... 42
PAGE: 2
MSGTOSS Version 1.3
PURPOSE
-------
MSGTOSS was designed to allow RBBS-PC sysops import Fidonet compatible
Echomail or Netmail into RBBS-PC message bases, in a fast and efficient
manner. This is accomplished by:
1) Un-arching the message packets
2) Analyzing each packet
3) Pre-purge or pre-expand the message bases as required
4) Toss messages to either (or both) RBBS or Fido format
5) Set the RBBS 'mailwaiting bits'
6) Maintain a MSGTOSS.LOG file
7) Create BAT/CTL/CMD files for system maintenance
MSGTOSS imports messages DIRECTLY from Fidonet compatible message pack-
ets (referred to as *.PKT files) into RBBS message bases. This direct
importing feature makes tossing of messages extremely fast. It was de-
signed to be used in conjunction with MSGRENUM and FIXMSG (for message
base re-numbering & repairing), however, any other similar utilities
may be used as well.
MSGTOSS was designed to optimize disk space by keeping message bases as
full as possible, and at the same improve the user interface by
allowing external system maintenance utilities to be used, such as V.
Dasa's SUBJECT utility.
SPEED OF MESSAGE IMPORTING
--------------------------
This is a relative comparison, but MSGTOSS will toss messages into RBBS
message bases directly from *.PKT file at a rate of approximately 318
messages per minute (no duplicate checking). This is based on an 12
mhz IBM AT clone with a 384K disk cache. Actual speed will vary
considerbly. Users with high performance 386 machines have reported
tossing throughput of over 700 messages per minute. One off the great
assets of MSGTOSS is the practicality of carrying hundreds of echos on
a single RBBS system, where speed of importing (prior to MSGTOSS) was
prohibitive.
MSGTOSS IS SHAREWARE
--------------------
MSGTOSS is being offered as SHAREWARE. MSGTOSS was not an easy
project, as it took 1000's of hours to develop and test. The author
has written other RBBS utilities such as MSGRENUM, MAILWAIT, MSGECHO,
FIXMSG, all of which were released as freeware; none of which compares
to the complexity of MSGTOSS. Future releases of MSGTOSS will depend
upon how much support the author receives. Therefore the author is
asking for a minimum contribution of $15.00 (or whatever amount you
PAGE: 3
MSGTOSS Version 1.3
think its worth to your system) for the use of MSGTOSS, to:
INTERSTATE BBS NETWORK
P.O. BOX 58813
RENTON, WA 98058
Registered users will receive as much personal support (and bug fixes)
as possible. Non-supporters will basically be on their own.
WARRANTIES
----------
MSGTOSS is guaranteed only to occupy space on your hard drive and could
(without warning) muck up all your message/users files to the point of
non-use at anytime (just kidding)... therefore the use of MSGTOSS is
solely at your own risk! MSGTOSS had been beta tested extensively to
eliminate bugs. Also, there are no guarantees that the author will
upgrade MSGTOSS.
WHAT MSGTOSS WON'T DO
---------------------
Currently, MSGTOSS does NOT provide SCANNING or EXPORTING of messages
from either RBBS message bases or from Fido-style sub-directories. To
accomplish this you will need RBBSMAIL and CONFMAIL (or equivalent) to
do this. Therefore, a general knowledge of these other utilities are
required to set up a totally automated mail system.
CREDIT WHERE CREDIT IS DUE
--------------------------
Credit is due to Tom Mack, Jon Martin and Ken Goosans for creating and
maintaining RBBS-PC. RBBS-PC still sets the standard. In addition,
credit is due to Kim Wells for first linking RBBS into the Fidonet com-
munity, and for creating some outstanding RBBS utilities (MU-PURGE,
MU-EDIT, etc.). Credit is also due to those sysops who have created
some excellent RBBS door applications for Fidonet; to mention a few,
Bob Wescott, Scott Baker & Darwin Collins. Also, credit is due to Dan
Thomson, Andrew Farmer & Jeff Nonken (authors of SPAZ), who granted my-
self permission to distribute SPAZ (un-altered) within the MSGTOSS
archive. Credit is also due to Bob Hartman and Jan Terpstra, for cre-
ating CONFMAIL and RBBSMAIL respectively; which MSGTOSS partially
emulates. Lastly, credit is due to my wonderful wife Kathryn, who put
up with me during all this software development. All of these folks
(in their own way), enhanced RBBS-PC in some manner or fashion.
MSGTOSS BETA TESTERS
--------------------
PAGE: 4
MSGTOSS Version 1.3
To those MSGTOSS beta testers, who blindingly exposed their precious
RBBS message bases to the early attempts of MSGTOSS; Greg Popovich,
Gray Shockley, Mark Annis, Vaishnava Dasa, Tim Jacobs, Jan Maaskant &
Stan Staten .... thankyou. In addition, these people spent their own
$$$ sending me crashed *.PKT files for me to analyze and create fixes
for, calling me voice, and picking up new beta versions.
RBBS CONFERENCES VERSES ECHOMAIL DOORS
--------------------------------------
Maintaining RBBS message bases for each echo area is more professional
compared to a Echomail door application. Users frequently are very
familiar with the message base commands of RBBS because they had al-
ready left messages to other users/comments to the sysop. In addition,
users are notified when they have local -or- conference mailwaiting
when they first logon the system. This would encourage users to look
at and use the echo conference areas on a frequent basis.
In addition, the sysop can use the built-in Programmable User Interface
(PUI) features of RBBS to create some very unique echo areas (menus,
welcome files, etc.), limited only by the sysops creativity. Also,
more and more built-in features are being coded into RBBS, geared spe-
cifically for Echomail; such as hiding of SEEN-BY: and PATH: lines,
with built-in Netmail not far away. It make sense to take advantage of
these new featues.
From a system point of view, RBBS message bases offer very fast message
base searches (the message base is only ONE single pre-formatted file),
and support file and record-locking features needed in a multi-user
environment. In addition, the message bases can hold thousands of
messages without burdening the hard disk of thousands of single files
(like Fidonet messages).
When using an Echomail door application, the user must 'EXIT' to the
door in order to check for personal messages -or- to enter new mes-
sages. The user is NOT notified of new mail when he logs on the sys-
tem. A door application frequently uses message commands very differ-
ent than what they (the users) are used to. Therefore users are
required to maintain two different sets of message base commands; one
for the main system messages, and one for the Echomail door. In addi-
tion, this approach poses problems when multiple nodes are used on the
system. File sharing/record locking needs to be addressed to prevent
undesirable events such as 'permission-denied' errors from occurring.
Also, there is a time-delay imposed on the user because the door needs
to be loaded into memory and when returning the BBS also needs to be
reloaded. Also, this loading and unloading also creates a 'risk' of
the system crashing, as most sysops who run many doors can attest.
Because each Fidonet message is a separate file (1.msg, 2.msg, 3.msg,
etc.) message searches take long periods of time. In addition, if you
maintain a significant number of echo areas, the system hard drive
performance will be degraded due the large numbers of files (FidoNet
PAGE: 5
MSGTOSS Version 1.3
messages) located on the system. And lastly, some users do not
understand the concept of doors and are hesitant to use them.
However, door programs do have many more features than vanilla-brand
RBBS message bases. Features like full-screen editors, mail pickup,
etc. add to the desirability of a door application, and the speed of
processing with a door (previously) added to the flavor.... However,
with MSGTOSS available, the speed factor is not as important.
ASSUMPTIONS
-----------
NOTE: This document assumes the following:
1) You have an operating RBBS bulletin board
2) You are connected to Fidonet with a node number
3) You are already receiving mail packets daily
4) You are using a front end mailer (Binkley SeaDog FrontDoor)
5) You are already using RBBSMAIL to import/export messages
It is not in the scope of this document to teach you how to set up a
Fidonet system. You will have to obtain the previously mentioned
utilities and thoroughly read the documentation on each of them thor-
oughly. A helping hand of another RBBS sysop is the *best* way to get
started. However, converting from a door application should be a
relatively easy task.
MSGTOSS THEORY OF OPERATION
---------------------------
There are 7 phases to the TOSSING of messages:
1) Un-arch mail packets
2) Analyze *.PKT or *.OUT files
3) Purge/expand RBBS message bases as required
4) Toss messages (RBBS message bases or Fido)
5) Set the mailwaiting bit for conference users
6) Create a MSGTOSS.LOG file for message base activity
7) Create miscellaneous BAT/CMD/CTL files for other maintenance.
UN-ARCH MAIL PACKETS
--------------------
Incoming mail packets are received by your respective front-end mailer
as either archived (*.MO*, *.TU*, etc.) or as a regular *.PKT or *.OUT
packet.
SPAZ will detect what type of archive it is and unpack it into the de-
fault directory (where you executed MSGTOSS) or to your inbound files
directory. You will have to modify the UNARCH----> parameter to
provide the correct SPAZ command line.
PAGE: 6
MSGTOSS Version 1.3
NOTE: It should also be noted that you can execute SPAZ exterior
MSGTOSS by simply placing the UNARCH----> parameter in
your batch file, and commenting out the UNARCH---->
parameter in your MSGTOSS.CFG file. It has been found
that SOME computers do not like MSGTOSS shelling out to
execute SPAZ. In addition, this also saves some memory.
ANALYZE PKT FILES
-----------------
MSGTOSS will then read the contents of each *.PKT or *.OUT and create a
corresponding *.IDX file for each packet. IE: If the packet is
11112222.PKT it will create a file called 11112222.IDX which contains
information about each message in each of the packets. This occurring
should be transparent to the user, as MSGTOSS will create and delete
these *.IDX files as required. This analyzation phase is critical, as
MSGTOSS needs to know exactly how much space is required to import new
messages.
When MSGTOSS is executed, it first looks for a corresponding *.IDX file
and if it finds one, it will NOT re-analyze the *.PKT file but rather
read the *.IDX file to get its information. If however, it discovers
that the original *.IDX file was created using the "/SECL" switch (see
command line switches), and the current execution of MSGTOSS is without
the "/SECL" switch, then MSGTOSS will re-analyze if required.
PURGE/EXPAND MESSAGE BASES
--------------------------
After the analyzing phase, MSGTOSS then knows how much space will be
required to successfully import the messages contained in each of the
*.PKT files received. It will then either PURGE the message bases or
EXPAND (or both) prior to tossing. If you specified the /PREP switch
(pre-purge), MSGTOSS will first load all of the USERS in a particular
conference in memory, and will commence to purge non-user messages.
This is accomplished via a 'pack-in-place' method, where the messages
flagged to keep will be 'shuffled' to the beginning of the RBBS message
base, as others are being deleted.
NOTE: It should be noted that MSGTOSS will purge ONLY ENOUGH messages
for successful importation. Therefore, if only 2-3 messages are
received in a particular conference, then roughly the same
amount will be purged (if there isn't enough space to begin
with).
NOTE: MSGTOSS can handle roughly 2000 users in memory at any one time.
If MSGTOSS detects that it is running out of memory as users are
being loaded, it will stop loading in memory and page the
remaining users to disk. This causes the purging to be slower
(but more complete). For optimum operation, try to keep the
sizes of your conference users under 2000.
PAGE: 7
MSGTOSS Version 1.3
To prevent messages from being purged before the sysop or conference
users have had a chance to read them, the MSGTOSS will make sure these
messages are not purged, with the following exceptions.
SYSOP AND USER MESSAGES
-----------------------
1) The message has already been killed.
2) If the message has already been read (and the DELREADSYS
or DELREADUSR parameter is set to 'YES' then it will be
purged.
3) If the message is TO the SYSOP, and the message is OLDER
than XX days as specified in the DAYSTOSYS parameter,
then it will be purged.
4) If the message is FROM the SYSOP, and the message is
OLDER then XX days as specified in the DAYSFRSYS
parameter, then it will be purged.
5) Same as the above steps 2, 3 & 4 but applies to the
conference USERS, and the affected parameters are
DELREADUSR, DAYSTOUSR & DAYSFRUSR, respectively.
5) Messages that contain the text 'NOECHO' as the very first
text, will be exempt from purging. This allows confer-
ence RULES to be posted without being purged.
This is an important concept for MSGTOSS, as messages left TO/FROM the
users (and the sysop) of the conference WILL NOT be deleted until they
are either killed or their time limit has run out (as specified by the
various DAYSTO???/DAYSFR??? parameters).
If after the 'pack-in-place' purging there is still not enough space to
import all of those messages, MSGTOSS will EXPAND the message base as
it sees fit to allow successful importation.
If you specified the /PREX (pre-expand) switch, then MSGTOSS will sim-
ply EXPAND the message base as it sees fit and continue on. At a later
time (say at a night event) to can CHOP the message bases back down to
their original size by issuing the /SIZE or /SIZE-UP switches.
If you add the switch /FIX to the command line, then MSGTOSS will
automatically SHELL to FIXMSG if it detects a corrupt message file
while doing the purge. It will execute FIXMSG twice, and if it still
fails to correct the problem MSGTOSS will simply abort.
If you use the switch /FIXC switch (instead), MSGTOSS will do the same
as above, but will copy the BLANK message base (model) as specified by
the BLANKMSG---> parameter over the corrupt message base, and rename it
to *.BAD. This prevents MSGTOSS from aborting due to a corrupt message
base.
PAGE: 8
MSGTOSS Version 1.3
TOSSING INTO RBBS MESSAGE BASES
-------------------------------
After the RBBS message bases were prepared for the new messages
(purged, expanded, etc.), they are now ready to receive new messages.
MSGTOSS will then toss each of the messages contained in *.PKT files to
either an RBBS message file, or to a sub-directory in Fido Message
form.
DUPLICATE MESSAGES
------------------
MSGTOSS handles duplicate checking alot different than other mail
processors. It creates and maintains a duplicate database file
called MSGTOSS.EID. This file is a random access file that con-
tains all of the EID:, MSGID:, and MSGTOSS generated ID codes for
the last XXXX messages, as specified by your DUPSIZE parameter,
for all of your conferences. The reason for the single
database-type format is simple, opening and closing files takes
time, and having a single file that is opened all the time will
make it faster. The database structure is documented in the back
of this document.
NOTE: When using the work directory switch (/WDIR), MSGTOSS will
automatically copy the MSGTOSS.EID database file to the RAM
disk (as specified by the WORKDIR---> parameter) prior to
tossing for faster operation. After tossing, MSGTOSS will
automatically copy it back to preserve its data.
MSGTOSS will check for duplicates during the tossing phase (must
specify the /CDUP switch), and if one is encountered, will simply
ignore the message and display in informational line of the dupli-
cate while tossing. If you specified the /DLOG (Maintain Dup Log
File) then when a duplicate is encountered MSGTOSS will append the
date, pkt, msg number, area and net/node of originating system
into a file called MSGTOSS.DUP.
NOTE: The areas UNKNOWN and ROUTETHRU are exempt from dup
checking.
OVERSIZED MESSAGES
------------------
There is no SIZE LIMIT of an imported message. MSGTOSS will
import without problems an entire BOOK if asked to. During the
toss, however, messages that are known to be over-sized (over the
limit specified by the KILLOVER parameter) will be simply ignored.
This prevents your message bases from being un-duly large due to a
few anti-social messages. If you are acting as a HUB, then you
should set the KILLOVER parameter very high to make sure all
messages are imported properly.
BAD DATE, MESSAGE HEADER
------------------------
Messages that are found to contain bad dates will be logged into
PAGE: 9
MSGTOSS Version 1.3
the MSGTOSS.ERR file, but will be tossed anyway. MSGTOSS does a
good job interpreting the various forms of dates that show up in a
*.PKT file, however, some it will not handle (like typos). For
these messages, MSGTOSS will convert the date to 'Todays
Date/Time' for RBBS message bases. If tossing as a Fido message,
it will leave the date intact (as it was).
For messages that have flakey message headers (grunged, etc.)
MSGTOSS will just ignore the message and log it into the
MSGTOSS.ERR file, along with the flakey header.
MSGTOSS does not bother tossing 'bad' messages, this just adds
more work for the sysop. Instead, MSGTOSS will log the bad
message into the MSGTOSS.ERR file, and it will tell you want went
wrong.
UNKNOWN MESSAGES
----------------
Messages that are found to contain unknown AREA tags will be
tossed into the Fido directory or RBBS message bases that is
specified for the UNKNOWN area. The UNKNOWN area is required, but
if you specify the '/KUNK' (Kill Unknown) switch they will be ig-
nored. Messages marked as UNKNOWN that are tossed will be tossed
along with their original AREA:xxxx tag and are exempt from dup
and size checking (even with the /CDUP switch), therefore, this
functions as a PASSTHRU area.
SETTING THE RIGHT MARGIN OF THE MESSAGES
----------------------------------------
RBBS messages are normally formated to a right margin of 72.
If you set your MARGIN----> parameter in your MSGTOSS.CFG file to
say 77, then the imported messages may look more proper, as most
BBS systems allow right margins of 79. Editing of these messages
may be more difficult, because RBBS expects messages to be 72.
In addition, the "/MRGN:xx" command line switch allows overiding
of the MARGIN---> parameter. This can be used for specialized
applications like tossing into a 40 column format for selected
echo areas (like commodore machines) while tossing other echo
areas in the regular 72 - 77 column format. Tossing selected
echos into 40 column format can be accomplished via the
"/AREA:xxx" or "/AREA:@listfile.ext" command line switch.
STRIPPING OUT ECHOMAIL CONTROL LINES
------------------------------------
Echomail contains alot "control lines" which are normally not
displayed to the user. These lines such as "SEEN-BY:", "PATH:"
and "EID:" lines can be stripped out of the RBBS messages by
using the "/SECL" switch in conjunction with the "/FMAS" switch.
The type of lines to be stripped are configured via the
"SECL-------->" parameter entries in the MSGTOSS.CFG file. These
entries allow the sysop to decide exactly what lines are to be
PAGE: 10
MSGTOSS Version 1.3
ignored and up to 20 "SECL-------->" entries are possible.
This allows as many messages to be imported into the RBBS message
base(s) in the allocated space defined. These switches and
parameters are explained further in this document.
ELASTIC MESSAGE BASES
---------------------
MSGTOSS by default is always checking that the "max messages"
value that is present in the message base "checkpoint record" is
always in accordance with RBBS-PC standards (can be modified and
explained further in the "/MAXM:xx" switch section). If you elect
to use the elastic message bases first introduced in RBBS 17-2 you
simply set the "ELASTIC---->" parameter to "YES". Basically all
this does is whenever MSGTOSS tries to set the "max messages"
value, it will set it to the value of the "RBBS-MAX---->"
parameter (currently 999).
NOTE: For proper operation of the ELASTIC message bases, the
MAINT%LO and MAINT%HI parameters should be set to a value of
100 each. This tells MSGTOSS during purging, sizing and
tossing to leave as little amount of slack space at the end
of the message bases as possible (100 percent full at all
times). RBBS will expand the message bases as users enter
new messages. In addition, RBBSMAIL will cut off any slack
present in the message base during a scan mode (when set for
ELASTIC operation).
EXTREMELY LARGE MESSAGE BASES
-----------------------------
If you keep extremely large message bases (over 4000 records) it
is possible for your message bases to exceed the (current) RBBS-PC
maximum of 999 messages per message base.
NOTE: The maximum of 999 may soon change to 9999, so this is why
the "RBBS-MAX---->" parameter is present in the MSGTOSS.CFG
file. The default entry is 999, which reflects the
"current" RBBS-PC maximum. In the event the maximum is
raised (future releases of RBBS-PC) the MSGTOSS
"RBBS-MAX--->" parameter will have to be adjusted.
The formula used to trigger a pre-count is (RBBS-MAX * 4),
where if the number of records exceed this amount, that will
cause a pre-count of the messages prior to tossing. Example:
RBBS-MAX = 999, "precount" = (999 * 4), Trigger = 3996 recs
Therefore MSGTOSS will do a "pre-count" of the messages prior to
tossing. This "pre-count" is automatic and is triggered only when
MSGTOSS senses a (RBBS-MAX * 4) record (or greater) message base.
In the event of an "overflow", MSGTOSS will not allow any more
messages to be imported into the message base, but will allow
PAGE: 11
MSGTOSS Version 1.3
other message bases to be processed as normal. After the *.PKT is
tossed normally, MSGTOSS will re-name the *.PKT to *.OFL (for
overflow) and log the occurance of the overflow into the
MSGTOSS.LOG and MSGTOSS.ERR files. The sysop can then elect to
fix the overflow problem, or simply delete the *.OFL file.
Tossing of selected echos are possible via the "/AREA:xxx" command
line switch (see "/AREA:xxx" switch).
So.... If your COMM echo overflowed (probably because you were
using the "/PREX" (pre-expand) switch) you can recover lost
messages by renaming the *.OFL files to *.PKT, and simply
re-tossing using the the "/AREA:xxx" switch as follows:
MSGTOSS /TOSS /PREP /CDUP /MWSET /AREA:COMM <rtn>
NOTE: When using the "/AREA:xxx" switch, MSGTOSS will *NOT* delete
the *.PKT or *.IDX file after processing *unless* the area
you selected to toss happened to be the only area in the
*.PKT file and all were tossed normally.
TOSSING DISPLAY
---------------
During the tossing phase, alot of tossing activity is displayed to
the user. If you would like to suppress this, simply add the
'/DDA' switch to the MSGTOSS command line. This will also result
in faster processing of messages. However, any informational
warning (like duplicate, oversized, bad date, etc.) will still be
displayed.
AFTER TOSSING THE PACKET
------------------------
After tossing the *.PKT, MSGTOSS will automatically delete the
respective *.PKT and *.IDX file and continue on to the next *.PKT
file.
NOTE: If you wish to keep the *.PKT files for further
processing, simply use the "/DKP" switch. This will
delete the *.IDX file but will leave the *.PKT file
available for other processors (like for HUB work). Be
extremely carefull, as if your other mail processor
crashed and *.PKT files are left in the MSGTOSS files
directory, then MSGTOSS will happily re-process them. For
safety sake, it would be better to IMMEDIATELY move the
*.PKT files to another directory after MSGTOSS has
processed them.
This can be further eliminated by changing the extention
of the packets from *.PKT to (say) *.TOS, and telling
MSGTOSS to consider files with the extention of *.TOS to
be fidonet packets. This is accomplished by the
PKTWILD---> parameter. You can delete the *.PKT entry and
replace it with *.TOS, and MSGTOSS will never consider a
*.PKT file to be a fidonet packet.
PAGE: 12
MSGTOSS Version 1.3
SET MAILWAITING BIT
-------------------
After successful tossing of the messages, MSGTOSS will then set the
'mailwaiting bit' for all of its conferences. This allows users to be
notified when they log-on the system whether they have mail waiting to
be read in each of the conferences. During initializing, MSGTOSS
remembered what the first message was before it started tossing,
therefore if you use the /MWSET switch, it will ONLY set the bit for
the brand-new messages. If you specify the /MWRST switch, then MSGTOSS
will first 'blank-out' ALL mailwaiting bits for ALL users first, then
re-hash the entire message base and set mailwaiting bits as required.
For messages that are addressed to the SYSOP or the SYSOP's common name
(IE:Mike Zakharoff), the TO: field will be changed to 'SYSOP' so when
you log-on as the sysop, proper notification will be made.
The SYSALIAS parameter (located in MSGTOSS.CFG) tells MSGTOSS which
user name is considered the SYSOP. This should be the same name as was
entered in CONFIG for the secret remote logon, and for 'LOCAL' logon
(ESC switch). Any messages that match those as specified by the
various SYSNAME(s) will cause the mailwaiting bit for the SYSALIAS user
to be set, and cause the TO: field to be changed to the text 'SYSOP',
if 'SYSOP' is not already part of the TO: field.
NOTE: You can obtain faster purging, mainwaiting and sizing by
configuring MSGTOSS to use a work directory. This is set via the
WORKDIR---> parameter. To initiate the work directory specify
/WDIR on the command line while executing MSGTOSS. If a RAM
disk, MSGTOSS will first copy the message base to the RAM disk
(if enough room exists) and will purge the message base as
required. After purging, MSGTOSS will then copy it back
automatically. In addition, if paging excess users to the
disk is required, MSGTOSS will use the work directory for faster
operation.
CREATE LOG FILE
---------------
MSGTOSS keeps a useful log of the activity after each mail event. The
directory of where this log file is created is specified by the
LOGDIR-----> parameter. Here is an example of the log:
MSGTOSS 1.3 03/29/90 - Report Date: 03-30-1990 10:21:13
PURGING - COMMM.DEF Purged: 28 Kept: 74 Users: 13
PURGING - CLIPPERM.DEF Purged: 28 Kept: 66 Users: 3
PURGING - CONSULTM.DEF Purged: 19 Kept: 73 Users: 4
PURGING - COOKINGM.DEF Purged: 71 Kept: 16 Users: 1
PURGING - C_PRGMM.DEF Purged: 76 Kept: 0 Users: 7
EXPANDED - C_PRGMM.DEF from 800 to 1142
PAGE: 13
MSGTOSS Version 1.3
PURGING - FEMINM.DEF Purged: 46 Kept: 32 Users: 2
Pkt - 1335610D.PKT Msgs: 3 Dups: 0 Skipped: 0 from 343/300
Pkt - 1353420C.PKT Msgs: 40 Dups: 0 Skipped: 0 from 343/300
Pkt - 13548E1D.PKT Msgs: 230 Dups: 0 Skipped: 0 from 343/300
Pkt - 13564332.PKT Msgs: 70 Dups: 0 Skipped: 0 from 343/300
/TOSS /PREP /FIXC /NSTOP /MWSET /FMAS /SECL /DDA MailWaiting
-------------------
AREA Name New Msgs Dups Total UMsgs USet SYSOP
------------------------- -------- ----- ----- ----- ----- -----
COMM 23 0 23 0 0 0
CLIPPER 24 0 24 0 0 0
CONSULTING 12 0 12 0 0 0
COOKING 70 0 70 0 0 0
C_ECHO 124 0 124 0 0 0
FEMINISM 40 0 40 0 0 0
NET343 1 0 1
RBBS-PC 13 0 13
NET_DEV 23 0 23
LAN 16 0 16
---------------------------------------------------------------------
Total - Skipped: 0 346 0 346 0 0 0
Anal: 1.8 Prep: 1.7 Toss: 1.1 Mwait: .6 Tot: 4.6 Toss/Min: 314
Provides a list of the purging activity, the *.PKTs processed, how many
messages were in each *.PKT, how many DUPS, how many messages were
skipped due to bad message headers, over sized messages, which message
bases were expanded, etc. In addition, it provides the command line
switches that were used when executing MSGTOSS. It provides the sysop
with a summary of the mailwaiting status of his system, including him-
self, and a summary of how many messages were skipped and the time
needed to complete the major operations of MSGTOSS, including the
tossing throughput.
CREATE MISC BAT/CMD/CTL FILES
-----------------------------
MSGTOSS was designed to be extremely flexible, therefore, various
system-related utility batch files can be automatically created. The
only message bases reported are only those which have received new
messages. These BAT/CMD/CTL files are automatically deleted each time
MSGTOSS is executed, therefore the maintenance they call out should be
executed immediately after executing of MSGTOSS. This can be used for
a variety of tasks, where the replacement parameters available are
[MSGFILE], [USRFILE], [WELFILE], and [AREA]. The parameters ONLY apply
to RBBS message bases, and not Fido sub-directories.
For instance, a batch file can be created that automatically creates a
special MU-EDIT batch file, that contains only those message bases that
received new messages. Example:
PAGE: 14
MSGTOSS Version 1.3
UTIL1CMD--->MU-EDIT [MSGFILE]
UTIL1------>EDIT.BAT
This would create a batch file called 'EDIT.BAT' that would contain a
sequential MU-EDIT batch file for each conference. The sample command
contained within the sample MSGTOSS.CFG command shows V. Dasa's SUBJECT
utility, which creates "Welcome Files" for all of the conferences.
THEORY OF OPERATION SUMMARY
---------------------------
MSGTOSS is the FIRST RBBS-PC (only) utility that accomplishes a direct
*.PKT to RBBS message base import. During the development phase of
MSGTOSS, alot of other methods where tried. After alot of trial and
error, I believe this is the optimum method for importing messages. No
longer does the sysop have to keep a close eye on the behaviour of his
message bases, as MSGTOSS handles it all.
MSGTOSS.BBS AREAS FILE
----------------------
Like most other mail processors, MSGTOSS also has its own 'AREAS.BBS'
file in its own format. The default name of MSGTOSS.BBS was chosen,
because other mail processors use the name of AREAS.BBS that is a
different format. Here is an example of MSGTOSS.BBS file:
MSGTOSS.BBS FILE
----------------
C:\RBBS\commm.def COMM |R1024| \
C:\RBBS\consultm.def CONSULTING |R1024| \
C:\RBBS\sportsm.def SPORTS |R1024| > RBBS Message Bases
C:\RBBS\techm.def TECH |R1024| /
C:\RBBS\warningm.def WARNINGS |R1024| /
C:\MAIL\UNKNOWN UNKNOWN |F| \
C:\MAIL\NMAIL NETMAIL |F| \
C:\MAIL\RBBS RBBS-PC |F| > FIDO Messages *.MSG
C:\MAIL\LAN LAN |F| /
C:\MAIL\RBBSPACK RBBSMAIL_PACK |F| /
GENERAL
-------
Lines that begin with a SPACE, SEMI-COLON or BLANK are assumed to be
comment lines and are ignored.
The FORMAT of this file is subject to change in future releases of
MSGTOSS!
PAGE: 15
MSGTOSS Version 1.3
The areas UNKNOWN & NETMAIL are required as either a Fido-style
conference or as an RBBS message base. The areas GENERAL, PRIVATE and
ROUTETHRU are supported, but if they don't appear, the messages will be
tossed into NETMAIL by default.
Messages that arrive that are NOT addressed to your system will be
tossed into your NETMAIL area if ROUTETHRU does not exist.
Messages with UNKNOWN areas will be tossed along with the original
AREA:xxxx which was not recognized. Messages that DO NOT contain an
AREA:xxxx are assumed to be NETMAIL and are tossed into the directory
specified by your NETMAIL area, but can also be optionally tossed into
an RBBS conference by using the area name NETMAIL.
In addition, the UNKNOWN and ROUTETHRU areas are exempt from duplicate
and size checking, even if you specify the /CDUP switch. Therefore,
this functions as a PASSTHRU area for systems requiring it.
You can have BOTH an RBBS conference and a Fido-style conference for
one area, but no more. IE:You want to post the COMM conference for
users AND have them tossed into Fido Style also.
RBBS MESSAGE BASES
------------------
All RBBS Conferences require |Rxxxx| where the R signifies that it is
an RBBS message base and the xxxx is the size in RECORDS of that
message base. The xxxx will be the size the message base is CHOPPED
back down to when using the '/SIZE' switch or INCREASED to match the
xxxx when using the 'SIZE-UP' switch when necessary.
You can toss NETMAIL into an RBBS Conference by adding the area NETMAIL
to a referenced RBBS conference.
All of these conferences MUST contain an 'M.DEF' to be recognized, and
MUST have a matching 'U.DEF' users file in the same directory, even the
NETMAIL Conference. However, if you specify the message base
"MESSAGES", then MSGTOSS will assume "USERS" in the same directory.
This allows the main message base to be processed with MSGTOSS's
special utility functions.
FIDO STYLE CONFERENCES
----------------------
The Fido-style Conferences each require the |F|.
Don't go crazy with simultaneous (RBBS + Fido) conferences, they will
slow down tossing. Tossing is optimized for tossing into RBBS confer-
ences; these are simply for convienence.
All Fido-style areas MUST have separate sub-directories! No intermix-
ing of conferences are allowed.
PAGE: 16
MSGTOSS Version 1.3
MSGTOSS.CFG CONFIGURATION FILE
------------------------------
For systems running multiple Nets (FidoNet, RBBSNet, AlterNet), you can
specify multiple configuration files. Here is an example:
MSGTOSS.CFG FILE
----------------
FILES------->C:\MAIL\FILES\
WORKDIR----->M:\
LOGDIR------>C:\BT\
MESSAGES---->C:\RBBS\MESSAGES
RBBS-MAX---->999
ELASTIC----->NO
MARGIN------>72
SECL-------->SEEN-BY:
SECL-------->
DUPFILE----->MSGTOSS.EID
MAXAREAS---->100
DUPSIZE----->200
UNARCH------>SPAZ -F -Q C:\MAIL\FILES C:\BT\
CONFWAIT---->10
CONFLOCK---->ALLFIG C:\RBBS\ALL1 130 N J 100 \n
PKTWILD----->*.PKT *.?UT
PURGECMD---->MU-PURGE [MSGFILE] /MSG:PIP
RENUMCMD---->MSGRENUM /MSG:[MSGFILE] /USR:[USRFILE] /DDA /NET /FIX
MAILWCMD---->MAILWAIT /MSG:[MSGFILE] /USR:[USRFILE] /DDA /NET +
/NAM:MIKE ZAKHAROFF /SYS:100 /FIX /LOG
BLANKMSG---->C:\RBBS\BLANKM.DEF
FIXMSGCMD--->FIXMSG [MSGFILE] /NET
RENUMBAT---->MSGCLEAN.BAT
MAILWBAT---->MSGCLEAN.BAT
UTIL1------->MSGCLEAN.BAT
UTIL1CMD---->SUBJECT I:[MSGFILE] O:[WELFILE] C:[AREA] L:15 S:
UTIL2------->
UTIL2CMD---->
ECHOSEC----->40
PRIVATE----->NO
KILLOVER---->3500
MAINT%LO---->80
MAINT%HI---->89
DAYSTOSYS--->60
DAYSFRSYS--->60
DELREADSYS-->NO
DAYSTOUSR--->60
DAYSFRUSR--->60
DELREADUSR-->NO
YEAR-------->1990
SYSALIAS---->SUPER TOSSER
SYSNAME----->!MIKE ZAKHAROFF
SYSNAME----->=SYSOP
NODE-------->1:343/36
PAGE: 17
MSGTOSS Version 1.3
NODE-------->8:918/1
Here is a brief explaination of each parameter:
FILES - Directory INCOMING mail and files go to FIRST
WORKDIR - RAM Disk (recommended) where MSGTOSS will COPY the current
message base being PURGED or SIZED. In addition, if
PAGING to disk is necessary (if a conference has over
2000 users) MSGTOSS will write the excess users to the RAM
disk for faster operation. Will check for available space
first. Not enough space will cause default directory to
be used. Need to specify the "/WDIR" switch to activate.
NOTE: Does NOT have to be a RAM disk. If for example you
ran out of disk space, you can SIZE the message
bases via a WORKDIR that has plenty of space. In
addition, the use of the WORKDIR provides an extra
safety margin while MSGTOSS is purging a message
base, as if power is lost while purging, lost chains
may be present in the message base. However, if
using the /FIX switch, MSGTOSS will detect the
corruption and fix the message base anyway (using
FIXMSG).
LOGDIR - Where MSGTOSS will write its MSGTOSS.LOG, MSGTOSS.ERR
& MSGTOSS.DUP files. Needs to end with a trailing
backslash. Blank will end up in default directory.
MESSAGES - Path/FileName of Main RBBS Message Base. This is used
while using the /WAIT switches, as MSGTOSS will monitor
the NODE records of the main RBBS message base to see
whether all users are of-line.
RBBS-MAX - Reflects the "current" RBBS-PC maximum messages. The
maximum of 999 may soon change to 9999, so this is
why the "RBBS-MAX---->" parameter is present in the
MSGTOSS.CFG file. The default entry is 999, which
reflects the "current" RBBS-PC maximum. In the event the
maximum is raised (future releases of RBBS-PC) the MSGTOSS
"RBBS-MAX--->" parameter will have to be adjusted.
ELASTIC - Either "YES" or "NO". This is designed to support the new
"elastic message bases" of RBBS-PC. What this actually
does is tell MSGTOSS to make the "maximum messages" value
that is present in the message base "checkpoint record" to
be the value of the "RBBS-MAX--->" parameter, no matter
what MSGTOSS calculates it to be normally.
NOTE: For proper operation of the ELASTIC message bases,
the MAINT%LO and MAINT%HI parameters should be set
to a value of 100 each. This tells MSGTOSS during
PAGE: 18
MSGTOSS Version 1.3
purging, sizing and tossing to leave as little
amount of slack space at the end of the message
bases as possible (100 percent full at all times).
RBBS will expand the message bases as users enter
new messages. In addition, RBBSMAIL will cut off
any slack present in the message base during a scan
mode (when set for ELASTIC operation).
NOTE: You can still use the "/PREP" switch, even though
you set ELASTIC to "YES". MSGTOSS will still CHOP
the message bases back down to the "|Rxxxx|" values
set in the MSGTOSS.BBS file.
MARGIN - What right margin should the RBBS conferences should be
set to. RBBS normally formats newly entered messages to
72. It should ne noted that setting the right margin
beyond the RBBS expected value of 72 may cause editing to
be more difficult, but will make the messages more
pleasing to read. Values beyond 77 are not recommended.
A value of 39 can be used to format the message bases to
support 40 column users.
The "/MRGN:xx" command line switch overrides the MARGIN
parameter.
SECL - These are utilized ONLY when the "/SECL" switch is
activated (which also requires the "/FMAS" switch). These
entries determine exactly what lines in the RBBS echomail
messages (not FIDO) are to be ignored during tossing.
Example: You want to strip all occurances off the
"SEEN-BY:" lines in RBBS messages:
SECL-------->SEEN-BY:
Example: Most echomail control lines begin with a "" so:
SECL-------->
Will strip EID:, PATH:, MSGID: & VIA: and any other
line that begins with an .
Example: You ONLY want to strip PATH: and VIA: lines:
SECL-------->PATH:
SECL-------->VIA:
All other lines that begin with an will be imported as
normal.
NOTE: The most restrictive entry will override a similar
less restrictive entry, example:
PAGE: 19
MSGTOSS Version 1.3
SECL-------->
SECL-------->PATH:
The first entry ALREADY will strip the second entry!
NOTE: Up to 20 "SECL-------->" entries are possible.
DUPFILE - Created by MSGTOSS, Database of EID codes. Use the /WDIR
(work directory) switch for automatic copying to/from ram
disk for faster dup checking.
MAXAREAS - Reserves so many spaces in the EID database. Max number
of conferences you would EVER have (I have 28, and mine is
set for 100, which I would never carry). Each require 26
bytes.
DUPSIZE - The number of previous messages to keep track of in each
area of each conference. Basically, the bigger, the
slower messsage processing. If your message bases average
100 messages, then set to at least 75. However, numbers
over 500-1000 are possible, but standby for some SLOW
tossing and a LARGE MSGTOSS.EID file! For optimum
processing its best to use the /WDIR (work directory)
switch to automatically place MSGTOSS.EID in a RAMDISK
for faster processing. MSGTOSS will automatically copy
the database back after tossing is complete.
NOTE: If you have a reliable HUB, who faithfully checks
for DUPS before sending to you, then the use of the /CDUP
switch may NOT be necessary and will make mail events as
fast as possible.
WARNING!: These TWO parameters (DUPSIZE and MAXAREAS) are
'one-time-shot' parameters. You can ONLY change these
parameters by first erasing the MSGTOSS.EID database, and
re-executing MSGTOSS, which will then format a *new*
MSGTOSS.EID file. In addition, these TWO parameters can
drastically slow down tossing after they get filled up
with EID: codes. So if you decide to make these 10000
each, tossing may take forever.
NOTE: Executing with the /CDUP switch the first time will
create MSGTOSS.EID. Depending on the values of
MAXAREAS and DUPSIZE (mostly) the size of the EID
database file will vary considerably. The ap-
proximate size of the EID database file can be esti-
mated using the following formula:
((13 * DUPSIZE) * NUMBER.OF.AREAS.YOU.HAVE)) + (MAXAREAS * 26)
UNARCH - Command to issue to unarchive mail packets. Recommended
to use only SPAZ.COM, because it can handle ZIP, LHARC,
PAGE: 20
MSGTOSS Version 1.3
ARC etc.
SPAZ -F -Q C:\MAIL\FILES C:\BT\
------------- ----------------------------
Incoming Mail Where PKTS go for processing
NOTE!! --> Where trailing back-slashes are!
NOTE: MSGTOSS looks in either the default directory (where
you executed MSGTOSS), and the directory specified
bythe FILES---> parameter for PKTs. Therefore, the
"C:\BT\" as shown above is also where MSGTOSS.CFG,
MSGTOSS.BBS and other control files are (like
RBBSMAIL.CFG). However, you can set the above
quoted directory to be ANY drive/directory, but you
MUST make sure you first change drive/directories
in your batch file, and execute MSGTOSS via the
/CFG: and /BBS: switches, to tell MSGTOSS where
its control files are.
NOTE: If you set the UNARCH parameter to blank, then
MSGTOSS will NOT shell out internally. If you are
having a memory problem, then you can simply execute
SPAZ in your batch file before executing MSGTOSS.
CONFWAIT - Number of minutes to wait till users are off line (used
with the /WAIT or /WAIT-F switches)
CONFLOCK - Command to place in MSGWAIT.BAT file created to lock
conferences (used with /WAIT options)
PKTWILD - Wildcards of what extentions FIDO Packets can be
PURGECMD - Will purge [MSGFILE] with What you put here
NOTE: This is ONLY used in conjunction with the /PEXT
switch. MSGTOSS by DEFAULT purges the message
bases INTERNALLY, thus this is ONLY provided for
those few who have a special need and desire to use
MU-PURGE vice MSGTOSS's internal purging!
NOTE: MSGTOSS supports dynamic USER File replacement
parameter for this switch. To use this, place
[USERFILE] within the command line.
IE: MU-PURGE [MSGFILE] /MSG: LOG PIP // ([USRFILE])
RENUMCMD - Re-number [MSGFILE] using [USRFILE] with what you put here
MAILWCMD - Set Mailwaiting bit [MSGFILE] [USRFILE] with what you put
here, using dynamic replacement parameters.
PAGE: 21
MSGTOSS Version 1.3
NOTE: This command line requires the /MEXT switch to be on
the command line, otherwise MSGTOSS will DEFAULT to
its INTERNAL Mailwaiting code. Use this ONLY if you
require the special features of MAILWAIT.
FIXMSGCMD - Fix [MSGFILE] with this ([USRFILE] available)
RENUMBAT - File created by MSGTOSS which contains RENUMCMD
MAILWBAT - File created by MSGTOSS which contains MAILWCMD
BLANKMSG - A "model" messsage base (un-corrupt, small) that will be
used with the "/FIXC" command line. If FIXMSG fails twice
then the message base entered here will be copied over the
original (corrupt) message base. The corrupt message base
will be renamed *.BAD.
UTIL1 - Batch file or ?? which contains UTIL1CMD commands
UTIL1CMD - Miscellaneous utility command [MSGFILE], [USRFILE], [AREA]
& [WELFILE] available for processing.
UTIL2 - Batch file or ?? which contains UTIL2CMD commands
UTIL2CMD - Miscellaneous utility command [MSGFILE], [USRFILE], [AREA]
& [WELFILE] available for processing.
ECHOSEC - Minimum Security level you allow for conference Access.
This is used to set the security level of the message dur-
ing tossing, and during purging as users with the security
level of ECHOSEC or higher will not have their messages
deleted.
NOTE: This is the security level (applicable conference
user file) whose members messages will NOT BE KILLED
unless they were already KILLED.
NOTE: This will be OVERRIDDEN by the DAYSTOUSR, DAYSFRUSR
or the DELREADUSR parameters.
PRIVATE - Either YES or NO. Whether to honor incoming PRIVATE echo
mail. Normally set to NO, which converts to public.
Setting to YES will slow down tossing. If tossing NETMAIL
into an RBBS conference then MSGTOSS will
AUTOMATICALLY check it the message is private. Better to
set this switch to NO.
KILLOVER - Prevent TOSSING (ignore) of any message over this size
MAINT%LO - When a purge is required, what % capacity to purge to.
MAINT%HI - What is the MAXIMUM % capacity before a purge is required.
PAGE: 22
MSGTOSS Version 1.3
NOTE: These two parameters control the purging activity of
MSGTOSS. MSGTOSS will automatically maintain the
percent capacity of all messages bases somewhere BE-
TWEEN these two values. Make sure MAINT%HI is a
larger value of MAINT%LO (or equal), and that they
do not exceed a value of 100 each.
DAYSTOSYS - Applies ONLY to messages TO the SYSOP: How many days old
the message is before it will be KILLED automatically.
DAYSFRSYS - Applies ONLY to messages FROM the SYSOP: How many days old
the message is before it will be KILLED automatically
DELREADSYS - Applies ONLY to messages TO the SYSOP: If the message has
been read by the SYSOP, then automatically KILL it,
regardless of the setting of DAYSTOSYS parameter. If
unread, will remain until the DAYSTOSYS parameter applies.
(YES or NO).
DAYSTOUSR - Applies ONLY to messages TO the USERS: How many days old
the message is before it will be KILLED automatically.
DAYSFRUSR - Applies ONLY to messages FROM the USERS: How many days old
the message is before it will be KILLED automatically
DELREADUSR - Applies ONLY to messages TO the USERS: If the message has
been read by the USER, then automatically KILL it,
regardless of the setting of DAYSTOUSRS parameter. If
unread, will remain until the DAYSTOUSR parameter applies.
(YES or NO).
YEAR - MSGTOSS depends on the SYSTEM CLOCK. If for some reason
the system clock YEAR does NOT match the YEAR Parameter,
MSGTOSS will abort. This is to help prevent the
accidental deletion of messages based on the
DAYSTO/DAYSFR Parameters by a faulty system clock.
NOTE: Reset this parameter on New Years Day!
SYSALIAS - The SYSALIAS parameter tells MSGTOSS which user name is
considered the SYSOP. This should be the same name as was
entered in CONFIG for the secret remote logon, and for
LOCAL logon (ESC switch). Any messages that match those
as specified by the various SYSNAME(s) will cause the
mailwaiting bit for the SYSALIAS user to be set, and cause
the TO: field to be changed to the text 'SYSOP', if
'SYSOP' is not already part of the TO: field.
SYSNAME - This parameter controls what messages are considered the
SYSOP. This is used during the PURGING and MAILWAITING
phases of the MSGTOSS. MSGTOSS will set the SYSOP's
mailwaiting bit ONLY if the message matches the below
criteria, and will be exempt from purging as well until
PAGE: 23
MSGTOSS Version 1.3
killed.
The FIRST CHARACTER must be either a '!' or a '=', nothing
else is allowed. The '!' means CONTAINS and the '=' means
EXACT.
!SYSOP keep messages that contain the string 'SYSOP' (Not
recommended, as every message to 'JOE SYSOP' will set the
mailwaiting bit for the SYSALIAS user (sysop).
=SYSOP will match on messages that ONLY have 'SYSOP' in
TO/FROM, will set the mailwaiting bits, and be exempt from
purging until either killed by the sysop, or DAYS(s)
parameters apply.
!YOUR REALNAME incase a message 'MIKE ZAKHAROFF @1:343/36'
!SYSOP @343/36 is also recommended or just '!SYSOP @'
NOTE: During the MAILWAITING processing, MSGTOSS will
convert messages addressed to your SYSNAMES to
'SYSOP', if SYSOP is not already part of the 'TO:'
name, and set the mailwaiting bit for the user you
entered under the SYSALIAS parameter.
Example:A message arrives to 'MIKE ZAKHAROFF'.
Because a SYSNAME is '!MIKE ZAKHAROFF' that message
will be converted to 'SYSOP' in the TO: Field.
Example:A message arrives to 'JOE SYSOP' and
'=SYSOP' is only entered as a SYSNAME. That message
will be treated as if it is another junk message,
and MSGTOSS will purge it whenever it thinks it need
to and will NOT set the sysops mailwaiting bit.
NOTE: ANY message addressed to your SYSNAMES(s) will
cause the mailwaiting bit to be set for the user as
specified by your SYSALIAS!
NOTE: You can have up to 10 SYSNAME(s)
NODE - Full NET/NODE of all your FidoNet compatible AKA's
(1:343/36)
NOTE: You can have up to 10 NET/NODES
NOTE: Place the net/node that gets the most traffic FIRST,
as they are checked sequentially.
----------------------------------------------------------------------
COMMAND LINE SYNTAX
-------------------
PAGE: 24
MSGTOSS Version 1.3
Entering "MSGTOSS <rtn>" from the DOS prompt will produce a display
similar to the following:
MSGTOSS 1.3 03/31/90 Mike Zakharoff INTERSTATE BBS NETWORK Seattle, WA
Copyright (c) 1989-90 FidoNet (1:343/36) BBS (206)631-3231
SYNTAX: MSGTOSS [SWITCHES ..]
1) Toss RBBS, FIDO & NETMAIL messages -------> /TOSS
2) Pre-PURGE before tossing ----------------> /PREP
3) Pre-EXPAND before tossing ----------------> /PREX
4) Invoke FIXMSG for Corrupt Msg Base -------> /FIX
5) Copy BLANKMSG if FIXMSG Fails Twice ------> /FIXC
6) Invoke Automatic Duplicate Checking ------> /CDUP
7) UPDATE Users MAILWAITING Bit (New Msgs) --> /MWSET
8) RESET Users MAILWAITING Bit (All Msgs) --> /MWRST
9) Force Msgs to M.DEFs as Already SCANNed --> /FMAS
10) Strip Echo Control Lines (Only /FMAS) ----> /SECL
11) Use Alternate MSGTOSS.CFG file -----------> /CFG:File.Ext
12) Use Alternate MSGTOSS.BBS file -----------> /BBS:File.Ext
13) Kill (Ignore) Msgs with UNKNOWN Areas ----> /KUNK
14) Only Toss with AREA xxx or @Listfile -----> /AREA:xxx
15) Format Right Margin of RBBS Messages to --> /MRGN:xx
16) PURGE, SIZE, DUPCHK & PAGE Via WORKDIR ---> /WDIR
17) Don't Display (tossing) Activity (faster) > /DDA
18) NO Interruption of TOSSING (faster) ------> /NSTOP
19) Minimum Number of Packets to process -----> /PKTS:xx
20) CHOP Msg Bases to Preset SIZE ------------> /SIZE
21) CHOP AND/OR Increase Msg Bases to SIZE ---> /SIZE-UP
22) Wait for Users to be OFF-LINE ------------> /WAIT
23) Wait for Users, Create MSGWAIT.BAT File --> /WAIT-F
24) Report on Message Base Statistics --------> /STAT
25) Force Un-Tossable PKT (more processing) --> /FORCE
26) Use EXTERNAL Purging via PURGECMD --------> /PEXT
27) Use EXTERNAL Mailwaiting via MAILWCMD ----> /MEXT
28) Maintain a MSGTOSS.DUP Log File ----------> /DLOG
29) Max Messages Multiplier (Default = 5) ----> /MAXM:x
30) Don't Kill *.PKT files after Tossing -----> /DKP
MSGTOSS allows tossing of messages directly from FidoNet compatible
Msg packets to RBBS-PC Msg Bases to FidoNet message form, or both.
COMMAND LINE SWITCHES
---------------------
Here is a brief explanation of each command line switch:
--------------------------------------------------------
/TOSS - Required for any tossing. Will TOSS both FIDO and RBBS
conferences
PAGE: 25
MSGTOSS Version 1.3
/PREP - Will pre-purge the message bases before tossing (used
most often).
NOTE: For any sort of tossing activity, "/PREP" or "/PREX"
is required. This informs MSGTOSS what to do in case
there is not enough room available in the respective RBBS
message base.
/PREX - Will Pre-EXPAND the message bases before tossing
/FIX - Will automatically invoke FIXMSG if corrupt message base
is found (also see /FIXC).
/FIXC - Will copy a BLANK (model) message base, specified by the
BLANKMSG---> parameter over a corrupt message base if
FIXMSG fails to fix a message base twice. Corrupt message
base is renamed *.BAD (also see /FIX).
/CDUP - Will check for duplicates and skip if found.
NOTE: If you have a reliable HUB, who faithfully checks
for DUPS before sending to you, then the use of the
switch may NOT be necessary and will make mail
events as fast as possible.
/MWSET - Will use MSGTOSS's INTERNAL code to set mailwaiting (new
Msgs).
/MWRST - Mailwaiting RESET... Will first ZERO all mailwaiting bits
for all users for all conferences and re-hash.
Recommended every now and then for message maintenance or
when first installing MSGTOSS or even in place of /MWSET
(its slower though).
/FMAS - Force Mail As Scanned. Will set the second colon of the
TIME field to a '.' vice ':' to prevent RBBSMAIL from
scanning for new messages. If you are NOT feeding points
or other systems from your *M.DEF's then it is recommended
to use this switch, as it will drastically increase the
speed of RBBSMAIL Scanning. RBBSMAIL will still EXPORT
messages entered from your users, it will simply ignore
the new echomail received. If at all possible (even if
you are a HUB) it is recommended to use this switch.
/SECL - Strip Echomail Control Lines. This switch CAN ONLY be
used in conjunction with the /FMAS switch, as explained
above. Basically, if you are using the /FMAS switch, you
are telling RBBSMAIL to ignore all messages that are
tossed by MSGTOSS. In this case it is probably not
necessary to import echomail control lines such as
SEEN-BY:, PATH: and other lines. Using this switch
will DRASTICALLY improve the number of messages allowed to
be imported in a given message base, as SEEN-BY: lines can
PAGE: 26
MSGTOSS Version 1.3
take up incredible amounts of space. This is usually on
the order of a 30-40% increase of the number of messages
allowed in a given message base.
The "SECL-------->" entries in the MSGTOSS.CFG file
determine exactly what lines are to be stripped.
WARNING: The use of this switch creates such an EFFICIENT
storage medium for echomail that it is somtimes
necessary to INCREASE the 'Maximum Messages'
entry on the message base 'Checkpoint Record'.
This can be accomplished by the "/MAXM:xx" command line
switch, or by setting the "ELASTIC---->" parameter in the
MSGTOSS.CFG file to "YES".
REASON: By default RBBS assumes that every message entry
averages 5 records (each record is 128 bytes).
Therefore, a message base formated to 1000 records will
have the 'Max Messages' set to around 200 (1000/5).
MSGTOSS version 1.3 now supports a new command line
switch called '/MAXM:x' which allow you to vary the
RBBS assumed value of 5 message records to say 4, which
will increase the 'Max Messages' entry to 250 (1000/4)
or say 3, which will increase it to 333 (1000/3)...
etc. See /MAXM:xx Switch
If you utilize RBBS-PC's "elastic" message bases, you can
accomplish the above by setting the "ELASTIC---->"
parameter to "YES", which will ALWAYS set the "max
messages" to the value of the "RBBS-MAX---->" parameter
(currently 999).
/BBS:xxx - Use alternate MSGTOSS.BBS file
/CFG:xxx - Use alternate MSGTOSS.CFG file
/KUNK - Kill (ignore) messages that have UNKNOWN areas. You still
need to have an area called UNKNOWN.
/AREA:xxx - Allows tossing only one selected echo area (/AREA:COMM) or
multiple echo areas located in a list file
(/AREA:@listfile.lst). The use of this command WILL NOT
delete the *.PKT file after completion of tossing UNLESS
all of the messages happened to be tossed properly. In
other words, the *.PKT files will still be available for
further processing. Example:
MSGTOSS /TOSS /PREP /AREA:COMM
Will ONLY toss the echomail in the "COMM" conference
PAGE: 27
MSGTOSS Version 1.3
A plain ascii file exists that contains a list of echos to
process, as follows:
RBBS-PC
NETMAIL
COMM
FORSALE
If this file is called "echolist.lst" then execute as
follows.
MSGTOSS /TOSS /PREP ..... /AREA:@echolist.lst
Note that the presence of the "@" is required to let
MSGTOSS know that it is looking for a file.
/MRGN:xx - What right margin should the RBBS conferences should be
set to. RBBS normally formats newly entered messages to
72. It should ne noted that setting the right margin
beyond the RBBS expected value of 72 may cause editing to
be more difficult, but will make the messages more
pleasing to read. Values beyond 77 are not recommended.
A value of 39 can be used to format the message bases to
support 40 column users. Example.
MSGTOSS /TOSS /PREP /MRGN:77
NOTE: The use of this switch overrides the "MARGIN----->"
parameter entry in the MSGTOSS.CFG file.
/WDIR - You can obtain faster purging, mainwaiting and sizing by
configuring MSGTOSS to use a work directory. This is set
via the WORKDIR---> parameter. To initiate the work
directory specify /WDIR on the command line while
executing MSGTOSS. If a RAM disk, MSGTOSS will first copy
the message base to the RAM disk (if enough room exists)
and will purge the message base as required. After
purging, MSGTOSS will then copy it back automatically. In
addition, if paging excess users to the disk is required,
MSGTOSS will use the work directory for faster operation.
NOTE: Does NOT have to be a RAM disk.
/DDA - Don't Display (tossing) Activity. Will significatly in-
crease the speed of tossing, as informational messages
regarding which messages are tossed where will be sup-
pressed. Also see /NSTOP switch.
/NSTOP - By default, MSGTOSS allows interruption of tossing or
analyzing by simply hitting any key. If this occurs,
MSGTOSS will abort as soon as it is done with the current
*.PKT file. Using /NSTOP will allow slightly FASTER
operation because it will not have to check for keyboard
PAGE: 28
MSGTOSS Version 1.3
input. Also see /DDA switch.
/PKTS:xx - Process only if there are at least xx packets present. If
used with the /WAIT-F parameter, no MSGWAIT.BAT file will
be created if less than xx packets are present.
/SIZE - Will CHOP message bases back down to |Rxxxx| in
MSGTOSS.BBS
/SIZE-UP - Will Increase (if required) and CHOP to match |Rxxxx|
/WAIT - Will Wait till users are off-line for CONFWAIT minutes and
will SHELL out and execute CONFLOCK command (in
MSGTOSS.CFG)
/WAIT-F - Same as above, but will create a file called MSGWAIT.BAT,
which consists of the CONFLOCK command. If the wait was
unsuccessful, then no MSGWAIT.BAT file will be created.
/STAT - Will produce Statistics of the message bases
/FORCE - Used if MSGTOSS chokes on a certain PKT. This is NORMALLY
not used. Send PKT to me for analysis. May still not
work.
/PEXT - Will use the PURGECMD parmeter and SHELL to the message
packer. By default MSGTOSS will internally PURGE &
SHUFFLE messages.
/MEXT - Will use the MAILWCMD parameter to create the BAT/CMD/CTL
file as specified by the MAILWBAT parameter. Used ONLY is
special reasons required you to use something other than
MSGTOSS's INTERNAL mail-waiting code.
/DLOG - Will append the following information to a file called
MSGTOSS.DUP whenever a duplicate is detected.
MSGTOSS.DUP contains the following information... DATE,
PKT, PKT MSG, AREA and WHO FROM (Net/Node) for tracking
information.
/MAXM:x - During the normal operation of MSGTOSS (purging,
expanding, setting mailwaiting bits, etc.) MSGTOSS is
constantly resetting the 'Max Messages' value entered in
the message bases 'Checkpoint Record'. Normally, you set
this value via CONFIG, but MSGTOSS will change it whenever
it requires. RBBS assumes that the 'Max Messages' value
is set APPROXIMATELY to "TOTAL.MESSAGE.RECORDS / 5".
Message records = 1000 - Max Messages = 200 (1000/5)
Message records = 2000 - Max Messages = 400 (2000/5)
This is normally not a problem, but with the introduction
of the /SECL switch, it is possible for MSGTOSS to import
PAGE: 29
MSGTOSS Version 1.3
more messages in a given message base than the default
'Max Messages' value. Basically this means that even
though there is PLENTY of room for a newly entered message
(by a user), if the 'Max Messages' entry exceeds the
number of messages, the user will be presented with "Not
enough room for new messages, try again tomorrow".
This has been solved with the "/MAXM:x" switch, where you
can tell MSGTOSS what multiplier to use (default is 5)
while setting the 'Max Messages' value. The multiplier
can be anywhere between 2 and 5.
/MAXM:5 Records = 1000 - Max Messages = 200 (1000/5)
/MAXM:4 Records = 1000 - Max Messages = 250 (1000/4)
/MAXM:3 Records = 1000 - Max Messages = 333 (1000/3)
/MAXM:2 Records = 1000 - Max Messages = 500 (1000/2)
NOTE: Also read about the "ELASTIC---->" parameter!
/DKP - Don't Kill Packets. Intended in hubbing situations
where you wish to keep the *.PKT files for further
processing. This will delete the *.IDX file but will
leave the *.PKT file available for other processors
(like for HUB work). Be extremely carefull, as if
your other mail processor crashed and *.PKT files
are left in the MSGTOSS files directory, then
MSGTOSS will happily re-process them. For safety
sake, it would be better to IMMEDIATELY move the
*.PKT files to another directory after MSGTOSS has
processed them.
MSGTOSS UTILITIES
-----------------
The following switches were designed as 'utilities' and can be executed
directly from DOS (or daily event) to perform a particular function:
1) /SIZE
2) /SIZE-UP
3) /STAT
4) /MWRST (can be a /TOSS switch too)
5) /WAIT-F
In addition, if you include the main message base in your MSGTOSS.BBS
file (like for the AREA GENERAL or PRIVATE), then you can also use
MSGTOSS utilities on it too, although its normally not processed.
/SIZE or /SIZE-UP
-----------------
Use the /SIZE switches to keep control of the sizes of your message
bases. You can do this by simply altering the |Rxxxx| values and ex-
PAGE: 30
MSGTOSS Version 1.3
ecuting 'MSGTOSS /SIZE <rtn>' or 'MSGTOSS /SIZE-UP <rtn>'. The
/SIZE-UP switch will increase message sizes (and CHOP) as required to
match the xxxx values, where the /SIZE will ignore the message base if
the size is smaller than or equal to the xxxx value. You may want to
place 'MSGTOSS /SIZE' as part of your daily maintenance routines.
/STAT
-----
Use /STAT to monitor the status of your message bases. Here is an
example of the /STAT parameter...
03-30-1990 22:37:16 RBBS-PC Message Base Statistics
---------------------------------------------------
Actual Recs Free Full% Usr MaxM Node Sec Bgn NxtRec LRec Lmsg
---- ---- ----- --- ---- -- --- --- ------ ---- ----
COMMM.DEF 900 190 78.9 7 162 3 40 5 710 900 115
PNWTECHM.DEF 1000 158 84.2 9 147 3 40 5 842 1000 127
PURSUITM.DEF 1000 149 85.1 7 122 3 40 5 851 1000 112
QUIKBASM.DEF 1000 199 80.1 5 146 3 40 5 801 1000 102
SCIENCEM.DEF 1000 207 79.3 5 176 3 40 5 793 1000 113
SPORTSM.DEF 1000 130 87.0 3 187 3 40 5 870 1000 150
TECHM.DEF 1000 225 77.5 6 205 3 5 5 775 1000 98
WARNINGM.DEF 1000 234 76.6 8 112 3 40 5 766 1000 101
-----------------------------------------------------
Total Disk Space Occupied: xxxxx
This data is derived from the message base 'checkpoint' record(s).
Here is a summary of columns:
RECS = Actual number of records (verses LREC)
FREE = Number of free records
FULL% = What percent capacity the message base is at
USR = Number of users in the U.DEF
MAXM = Maximum messages allowed (MSGTOSS sets)
NODE = Number of node records
SEC = Security level of conference
BGN = Record number where messages begin
NXTREC = Record where next message can be written
LREC = Number of records message base thinks it is (verses RECS)
LMSG = Number of the last message
NOTE: This can be directed to the printer or to a file be DOS
redirection principles.
/MWRST
------
This switch is helpfull when first installing MSGTOSS to clear out the
false mailWaiting bits and start from scratch. In addition, the /MWRST
switch can be used in place of the /MWSET switch and will reset all of
the mailwaiting bits during every mail run.
PAGE: 31
MSGTOSS Version 1.3
/WAIT-F
-------
Not really a utility, but it will monitor the 'node records' in the
RBBS main message bases to determine whether all users are off-line.
If all users are off-line, then MSGTOSS will create a file called
'MSGWAIT.BAT' which can be tested for existance in your batch file,
example:
:RECMAIL
MSGTOSS /WAIT-F
If Not Exist MSGWAIT.BAT Goto Start
Lock out [J]oin Conference command .....
MSGTOSS /TOSS /PREP /MWSET
SCAN, Etc ....
Un-lock [J]oin Conference command .....
Goto Start
This provides a means to allow sysops running multiple nodes to toss
mail between callers. To do this, the sysop should provide a means of
locking the [J]oin Conference command to prevent unwanted side effects.
MSGTOSS will (upon executing MSGTOSS /WAIT-F) wait up to the amount of
minutes specified by the CONFWAIT---> parameter. If the time expires,
then MSGTOSS will exit back to DOS without creating MSGWAIT.BAT. The
sysop can, however, press [C]ontinue and MSGTOSS will contine to
process, as if all users are now off-line. This functions as an
override.
INSTALLATION
------------
First, modify the MSGTOSS.BBS file to suit your system configuration.
Make sure you specify full path names for each conference. If you are
already running RBBSMAIL, simply copy your existing AREAS.BBS file and
add the '|Rxxxx|' and the Fido Areas using the example MSGTOSS.BBS file
as an example. Remember, the areas NETMAIL and UNKNOWN are required!
For faster execution of MSGTOSS, you can delete all of the parameter
commands that are at the bottom of the MSGTOSS.CFG file, but DO NOT
DELETE any of the "---->" lines, even if you think they do not apply!
For this preliminary testing, set the "|Rxxxx|" values to say
"|R9999|", as these values will be changed when you get the MSGTOSS
"/STAT" command line switch working properly. The /STAT command will
tell you the exact sizes of your message bases.
Second, modify the MSGTOSS.CFG file using your favorite editor: These
marked with the "<--*" are the most critical. Other parameters can be
adjusted as you become more familiar with MSGTOSS.
PAGE: 32
MSGTOSS Version 1.3
FILES------->C:\MAIL\FILES\ <--*
WORKDIR----->M:\ <--*
LOGDIR------>C:\BT\ <--*
MESSAGES---->C:\RBBS\MESSAGES <--*
RBBS-MAX---->999
ELASTIC----->NO
MARGIN------>72
SECL-------->SEEN-BY:
SECL-------->
DUPFILE----->MSGTOSS.EID
MAXAREAS---->100 <--*
DUPSIZE----->100 <--*
UNARCH------>SPAZ -F -Q C:\MAIL\FILES C:\BT\ <--*
CONFWAIT---->10
CONFLOCK---->ALLFIG C:\RBBS\ALL1 130 N J 100 \n <--*
PKTWILD----->*.PKT *.?UT
PURGECMD---->MU-PURGE [MSGFILE] /MSG:PIP
RENUMCMD---->MSGRENUM /MSG:[MSGFILE] /USR:[USRFILE] /DDA /FIX
MAILWCMD---->MAILWAIT /MSG:[MSGFILE] /USR:[USRFILE] /DDA +
/NAM:MIKE ZAKHAROFF /SYS:100 /FIX /LOG <--*
BLANKMSG---->C:\RBBS\BLANKM.DEF <--*
FIXMSGCMD--->FIXMSG [MSGFILE]
RENUMBAT---->MSGCLEAN.BAT
MAILWBAT---->MSGCLEAN.BAT
UTIL1------->MSGCLEAN.BAT
UTIL1CMD---->SUBJECT I:[MSGFILE] O:[WELFILE] C:[AREA] L:15 S:
UTIL2------->
UTIL2CMD---->
ECHOSEC----->40 <--*
PRIVATE----->NO
KILLOVER---->9999 <--*
MAINT%LO---->80
MAINT%HI---->89
DAYSTOSYS--->60
DAYSFRSYS--->60
DELREADSYS-->NO
DAYSTOUSR--->60
DAYSFRUSR--->60
DELREADUSR-->NO
YEAR-------->1989
SYSALIAS---->SUPER TOSSER <--*
SYSNAME----->!MIKE ZAKHAROFF <--*
SYSNAME----->=SYSOP
NODE-------->1:343/36 <--*
NODE-------->8:918/1 <--*
Next, copy the MSGTOSS.CFG file into the same directory where your
RBBSMAIL.CFG and your RBBSMAIL 'Areas File' is.
IMPORTANT SPAZ INFORMATION
PAGE: 33
MSGTOSS Version 1.3
--------------------------
The proper execution of SPAZ is essential to proper operation! You
*must* set up SPAZ so that the *.PKT files end up in:
1) The same directory as the MSGTOSS.CFG and .BBS files -or-
2) The same directory as the FILES---> parameter.
Therefore, MSGTOSS will *only* look in the default directory or the
FILES---> directory for *.PKT or *.?UT* files! If you want MSGTOSS to
work on another drive (due to space considerations) then have your
batch file change drives and directories asreq to where you want to be,
then use the /BBS:file.ext and /CFG:file.ext command line parameters so
MSGTOSS can find its files.
You can test the proper execution of SPAZ by placing a *.MO* in the
directory where you receive mail or files (should be the same as the
FILES----> parameter) and execute SPAZ from DOS (directly). If
correct, then the *.PKT should end up in either 1) or 2) as above.
NOTE: MSGTOSS shells out to SPAZ during default operation.
However, SPAZ also shells out to the respective archive
utility! That is shelling ontop of shelling and some
computers do not like all this shelling. Therefore if
your computer locks up while MSGTOSS is trying to execute
SPAZ, simply comment out the "UNARCH---->" parameter and
execute SPAZ in your batch file PRIOR to executing
MSGTOSS. This can also be used where memory requirements
are short.
PRELIMINARY TESTING
-------------------
After you think everything is fine, try executing 'MSGTOSS /STAT' to
make sure MSGTOSS recognizes all of your message bases. Errors will be
displayed if needed. This is a good preliminary test.
NOTE: Make sure ALL of your conferences are being recognized!
When /STAT is working properly, redirect it to the printer to document
the message base statistics ... like this:
MSGTOSS /STAT >PRN <rtn>
Using the printed output, check the number of records printed for each
message base vice the "|Rxxxx|" values you entered in your MSGTOSS.BBS
file.... adjust if necessary. If you decide to adjust the sizes of the
databases, simply change the xxxx values to what you think they should
be and then further test MSGTOSS by issuing one of the /SIZE commands.
If you decide that you need to INCREASE the sizes of the message bases
then issue the /SIZE-UP command, otherwise issue the /SIZE command,
which will ignore any message bases that are LESS than the number of
PAGE: 34
MSGTOSS Version 1.3
records specified by the xxxx values.
WAIT! - Did you properly adjust the "|Rxxxx|" values? Executing the
next command may (safely) change the sizes of your message bases. Are
you sure? If not re-read this section.
MSGTOSS /SIZE <rtn>
If all seems well then RESET all of your MAILWAITING bits by issuing
the /MWRST command .... like this:
MSGTOSS /MWRST <rtn>
This will first BLANK-OUT all of the mailwaiting bits, then re-hash all
of the users. Note that the sysops mailwaiting bits will be set in
accordance with the SYSNAMES(s) and SYSALIAS parameters entered. It is
recommended that you do NOT use '!SYSOP' for a SYSNAME as every message
entered to 'JOE SYSOP' or 'MORT SYSOP' will cause the SYSALIAS
mailwaiting bits to be set. '=SYSOP' is recommended (only), but suit
your self.
FIRST TOSSING TEST
------------------
Assuming the preliminary tests went ok, place a small "*.MO*" arcmail
packet or '*.PKT' into your FILES---> directory and test the tossing
using....
MSGTOSS /TOSS /PREP /MWSET <rtn>
Did it work? If it didn't work.... re-read this manual (especially the
THEORY OF MSGTOSS) and try again. A good understanding of how MSGTOSS
works should help you understand what may have gone wrong.
You may want to experiment using the other common command line
switches, such as /CDUP, /MWSET, /DDA etc.
Executing with the /CDUP switch the first time will create MSGTOSS.EID.
Depending on the values of MAXAREAS and DUPSIZE (mostly) the size of
the EID database file will vary considerably. The approximate size of
the EID database file can be estimated using the following formula:
((13 * DUPSIZE) * NUMBER.OF.AREAS.YOU.HAVE)) + (MAXAREAS * 26)
Good luck...
FRONTEND MAILER BATCH FILE MODIFICATION
---------------------------------------
PAGE: 35
MSGTOSS Version 1.3
This assumes that you have decided that MSGTOSS is the greatest RBBS
tossing utility you have ever seen, and are going to commit it to your
system for full-time operation.
Using the following batch file excerpt as a guide, test MSGTOSS to make
sure it works as stated. It is highly recommended that you set up some
sort of 'TEST-JIG' batch file to convince yourself that it works.
Here is an example. Note that this can take on many different forms
and this is just a PORTION of the batch file.
WARNING!: Save your old setup, incase you can't seem to get MSGTOSS to
work properly, its 2:00 am, and you are expecting a 1 meg
packet any minute. In other words, don't shoot yourself in
the foot. REM out your existing batch file commands FIRST,
then when you are satisfied MSGTOSS is working perfect, then
remove the old batch file lines (after a week).
BATCH FILE EXAMPLE
------------------
MSGCLEAN is created by MSGTOSS and contains RENUMBERING and
message maintenance commands. Also, the /FMAS and /SECL
switch(s) on the "MSGTOSS /TOSS ..." command line is recommended.
But you MUST FULLY UNDERSTAND what they do! Read DOCS throughly
on these.
Example of a Single Node system, with minimum command line switches.
:START
Execute Binkley.... Blah, blah....
:RECMAIL
C:
CD\BT
Msgtoss /TOSS /PREP /MWSET
If Exist Msgclean.bat Call Msgclean.bat
:SCAN
rbbsmail /f:arearbbs.bbs scan /l /o
ommm -iC:\BT\binkley.prm -mC:\MAIL\NMAIL\ -hC:\BT\OUT\ -cC:\BT\ommm.ctl -d -z1 -q -a
Goto START
------------------------------------------------------------------------
Example of a Multi-Node system, using ALLFIG to lock-out the [J]
command before tossing. Uses the /WAIT switch to make sure all
users are off-line. The /WAIT-F will exit, creating MSGWAIT.BAT if
all clear. Using just /WAIT will instead SHELL out and execute
the CONFLOCK command and return to MSGTOSS to complete tossing.
Also notice the /PKTS:2 switch. This tells MSGTOSS to NOT CREATE
msgwait.bat UNLESS there are at least 2 PKTs.
PAGE: 36
MSGTOSS Version 1.3
Every time your binkley.bat (or other front end mailer) batch file
is executed, the bat file will check to see whether there are PKTS
to process. If there are, it will go through the RECMAIL portion
to make sure all users are off-line. If all users are off-line,
MSGTOSS will process. If not, it will wait till the next time the
batch file is executed and try again. Also notice the "SPAZ"
command in the batch file. This is taken directly from the
MSGTOSS.CFG file and the "UNARCH---->" parameter is commented out
by a ";". The reason for executing SPAZ exterior to MSGTOSS is so
you can detect the presence off *.PKTs at the TOP of your Binkley
batch file. In other words, the mail packets (arcmail) will
ALWAYS be unarched after you receive mail by SPAZ, but not
processed by MSGTOSS until all users are off line.
If Exist C:\BT\*.PKT Goto RECMAIL
If Exist C:\BT\*.?UT Goto RECMAIL
:START
Execute Binkley.... Blah, blah....
:RECMAIL
C:
CD\BT
SPAZ -F -Q C:\MAIL\FILES C:\BT\
Msgtoss /WAIT-F /PKTS:2
If Not Exist Msgwait.bat Goto START
ALLFIG C:\RBBS\ALL1 130 N J 100 \n
Msgtoss /TOSS /PREP /MWSET
If Exist Msgclean.bat Call Msgclean.bat
:SCAN
rbbsmail /f:arearbbs.bbs scan /l /o
ommm -iC:\BT\binkley.prm -mC:\MAIL\NMAIL\ -hC:\BT\OUT\ -cC:\BT\ommm.ctl -d -z1 -q -a
ALLFIG C:\RBBS\ALL1 130 N J 40 \n
Goto START
-----------------------------------------------------------------------
After everything is working perfect, read the section on Performance
Optimum to find out how to get the fastest performance from MSGTOSS and
RBBSMAIL. Good luck!
-----------------------------------------------------------------------
BAD PACKETS, SEVERE ERRORS, OVERFLOWS
-------------------------------------
MSGTOSS will (if it encounters a severe error while processing a *.PKT
file) delete the corresponding *.IDX file, and rename the *.PKT to
*.BAD to prevent MSGTOSS from processing it again. You may want to
test for the condition of *.BAD in you batch file to alert you.
PAGE: 37
MSGTOSS Version 1.3
In addition, MSGTOSS will (whenever possible) continue on processing
even though it came upon a severe error. MSGTOSS creates a MSGTOSS.ERR
file that contains things it couldn't handle, but processed anyway (or
ignored), like trashed message headers, severe errors, etc. Again, you
may want to test for the existance of MSGTOSS.ERR as part of your batch
file. MSGTOSS.ERR should be reviewed periodically.
If you keep extremely large message bases over 4000 (RBBS-MAX * 4)
records, it is possible for your message bases to exceed the RBBS-PC
maximum of 999 (RBBS-MAX) messages per message base. Therefore MSGTOSS
will do a "pre-count" of the messages prior to tossing. This
"pre-count" is automatic and is triggered only when MSGTOSS senses the
over 4000 record (RBBS-MAX * 4) message base.
In the event of an "overflow", MSGTOSS will not allow any more messages
to be imported into the message base, but will allow other message
bases to be processed as normal. After the *.PKT is tossed normally,
MSGTOSS will re-name the *.PKT to *.OFL (for overflow) and log the
occurance of the overflow into the MSGTOSS.LOG and MSGTOSS.ERR files.
The sysop can then elect to fix the overflow problem, or simply delete
the *.OFL file. Tossing of selected echos are possible via the
"/AREA:xxx" command line switch (see "/AREA:xxx" switch).
MSGTOSS was beta tested to the hilt, but there still is a possibility
of receiving a *.PKT file that is beyond the capability of MSGTOSS to
process. If this happens, then try executing with the '/FORCE' switch
as part of the command line parameters (along with the '/TOSS') to see
if it works. If you are a supporter of MSGTOSS, send the *.PKT to me
for analysis and a possible fix. If you are a non-supporter, then I
may be interested, but don't expect me to bend over backwards to fix
your problem. Future upgrades and enhancements DEPEND on the amount of
support I receive.
EPILOG
------
I would like to know what you think of this program! Call my BBS or
drop me Netmail or catch me in the RBBS-PC or RBBSMAIL_PACK echo that I
participate in. Future upgrades or enhancements will depend on how
much support I receive from the users of MSGTOSS. MSGTOSS took 1000's
of hours to create and I believe it to be one of the finest mail
tossers in the Fidonet community, as well as for RBBS-PC. If you use
this program then please help support it. Supporters will receive
almost instantaneous support for problems. The bottom line is if you
want support, then support. Otherwise you are on your own.
Meanwhile, happy BBSing!
PERFORMANCE OPTIMIZATION
------------------------
PAGE: 38
MSGTOSS Version 1.3
Here are a few tips to make your mail events as fast as possible.
1) Use a disk cache! Even just a 64K cache makes a BIG difference!
2) Use the /FMAS switch if at all possible. This will DRASTICALLY
increase the speed of RBBSMAIL scanning, as RBBSMAIL will ignore
any messages tossed my MSGTOSS. Read docs throughly!
3) Use the /SECL switch if at all possible. This can ONLY be used
with the /FMAS switch. May be necessary to use /MAXM:x switch
or the "ELASTIC---->" parameter. Read docs throughly!
4) Use the /NSTOP and /DDA switches, as this will also speed up
MSGTOSS. Read docs.
5) Consider NOT using the automatic DUP checker (/CDUP switch). If
your hub faithfully checks for dups then it may not be necessary.
6) Use a RAM disk and execute MSGTOSS with the /WDIR (work
directory) command line switch. The RAM disk is configured by
the WORKDIR---> parameter in the MSGTOSS.CFG file. Will speed up
purging, mailwaiting, sizing & tossing (if using /CDUP).
7) Use a disk de-fragmentator AFTER your main mail run on the
drive where the RBBS message bases exist. Tossing and scanning
will fragmentate the message bases.
8) Keep your conference USERS file(s) small (mine have ONLY 32 user
records!) and purge them after so many months of inactivity. If
a user decides to browse the conference but doesn't enter
messages; MSGTOSS, MSGRENUM etc. will slow down because it will
be looking for messages to/from that inactive user. You can set
up a daily MU-PURGE control file to do this. Here is an example
of mine:
C:\RBBS\users /USR:D365 LOG /10 /25 (C:\RBBS\messages)
C:\RBBS\commu.def /USR:D30 LOG /40 /60 (C:\RBBS\commm.def)
C:\RBBS\consultu.def /USR:D30 LOG /40 /60 (C:\RBBS\consultm.def)
C:\RBBS\cookingu.def /USR:D30 LOG /40 /60 (C:\RBBS\cookingm.def)
C:\RBBS\c_prgmu.def /USR:D30 LOG /40 /60 (C:\RBBS\c_prgmm.def)
Notice that they get BOOTED out of the conference if they haven't
entered it in over 30 days. In addition, once they are purged
then any messages that they left or are waiting will also be
purged. All of my 'U.DEF' files are only 4096 bytes, good
for only 32 users (I haven't run out of room yet).
PAGE: 39
MSGTOSS Version 1.3
MSGTOSS.EID DATABASE FILE STRUCTURE
-----------------------------------
This information is provided for those who seek to modify the SIZES of
the MSGTOSS.EID file, and care to not loose its data. By default, the
creation of the MSGTOSS.EID file is a 'one-time-shot' process. The
sizes you choose (MAXAREAS & DUPSIZE) are going to affect the speed of
tossing. The larger you make the DUPSIZE parameter, the slower the
processing. If you wish to change the SIZE of the MSGTOSS.EID file,
the only way is by erasing the old one, change the DUPSIZE parameter,
and execute MSGTOSS again. However, for the hacker, this is the
format...
The MSGTOSS.EID file is opened in TWO phases, once as 26 bytes in
length, and then again as 13 bytes in length.
Initially, its opened as 26 bytes in length to load its keys into
memory.
Opened with length of 26 bytes....
Record 1 - MSGTOSS.EID Header, tells MSGTOSS what size the EID file
is, so MSGTOSS can make sure it matches what was specified
in the CFG file parameters, DUPSIZE and MAXAREAS.
Record Length, 26 bytes.
01-04 MAXAREAS parameter, as CVS(MAXAREAS)
05-08 DUPSIZE parameter, as CVS(DUPSIZE)
09-26 Fill...
Records 2 - (MAXAREAS+1)
Record Length, 26 bytes.
This is where the INDEXES are stored for all of the AREAS,
and is crucial to proper operation of the EID database.
This area is built when you first decided how big to make
your EID file by selecting the MAXAREAS parameter.
01-04 as CVS(START) where START is the record (opened as
13 bytes) where the EID codes start for this area.
05-08 as CVS(NEXT) where NEXT is the record (opened as 13
bytes) where the NEXT EID code may be written. This
number will ALWAYS be between CVS(START) and
CVS(START)+DUPSIZE.
09-09 as TEXT (either a '+' or a '-'). The '+' indicates
that it is an ACTIVE area and a '-' indicates it is an
AVAILABLE area.
PAGE: 40
MSGTOSS Version 1.3
This flag is reset EVERY TIME you execute MSGTOSS.
MSGTOSS will initially set all areas to '-', then
change each to a '+' as it finds the area in the
MSGTOSS.BBS file. If it finds that a particular area
is NOT located in the EID database, it will then search
for the first available '-', erase the AREA that was
there, clear out the DATA area, and assign the area.
10-26 as TEXT for AREA: name. Note that only the FIRST 16
characters of the AREA: tag are significant! Therefore
if you have two echos called WHATAGREATECHOMAN1 and
WHATAGREATECHOMAN2 then they will end up occupying the
same data space, so beware...
End of opening the EID database as 26 characters.
The starting location for each echo CVS(START) and location of the
nextavailable record where an EID code may be written CVS(NEXT) are
loaded into memory and are the records (when the EID database is opened
as 13 bytes!) where EID information resides. The END record for each
area is derived as CVS(START)+DUPSIZE, as DUPSIZE is always a CONSTANT.
Records (MAXAREAS*2)+3 - ??????
Is the DATA area for all the EID codes (opened as 13
bytes). At the END of each MSGTOSS session, the file is
closed and re-opened as 26 bytes, and all of the CVS(NEXT)
parameters are updated to the numbers resident in memory.
PAGE: 41
MSGTOSS Version 1.3
REVISIONS/BUG FIXES
-------------------
------------------ Version 1.0 (12/22/89) ----------------
Original Release.
------------------ Version 1.1 (12/28/89) ----------------
Found a horrible bug which was overlooked by author testing and by the
beta testers, due to coincidence. MSGTOSS looks for a carriage return
character to signify end of line. This is the HEX character "0D". On
each message, the destination and origin NET/NODE numbers are placed on
the message header. Some NET/NODE numbers (as stored on the message
header) contain the HEX character 0D, thus MSGTOSS would get confused
and think it found the end of the line. The reason this was not caught
before was that all beta testers (and myself) NET/NODE numbers do NOT
contain HEX 0D, thus the problem never showed up before.
Any Fidonet or RBBS-NET node whose NET -or- NODE number contains 13,
269, 525 or 1037, MSGTOSS 1.0 would NOT work at all. If any (working)
system receives mail from these systems, MSGTOSS 1.0 would not work
properly, as it would ignore mail from these systems.
The good news is that 1.1 permanently fixes this problem.
------------------ Version 1.2 (02/13/90) ----------------
1) Added "MARGIN----->" parameter to the MSGTOSS.CFG file.
2) Added "SECL------->" parameter(s) to the MSGTOSS.CFG file.
3) Added "RBBS-MAX--->" parameter to the MSGTOSS.CFG file.
4) Added "ELASTIC---->" parameter to the MSGTOSS.CFG file.
5) Added the /SECL command line switch
6) Added the /MAXM:x command line switch
7) Added the /MRGN:xx command line switch
8) Added the /AREA:xxx or /AREA: @listfile.exe command line switch
9) Added the /DKP command line switch
10) Removed the /MORE command line switch
10) Changed the format of MSGTOSS.LOG slightly. Now reports message
base expansion to MSGTOSS.LOG file.
11) Fixed a bug in the /SIZE or /SIZE-UP routine, where MSGTOSS may
PAGE: 42
MSGTOSS Version 1.3
chop off the last couple of messages entered.
12) Fixed bug in message base expansion routine, where MSGTOSS would
not properly update the 'Max Messages' value in the message base.
13) Added code to delete current *.IDX file if run out of disk space
while analyzing.
14) Added code to prevent tossing of over 999 messages into a single
conference & create a *.OFL (overflow) packet.
15) Added code so in the waiting mode (/WAIT switches) the sysop can
over-ride the waiting process (by pressing [C]ontinue) and MSGTOSS
continue to process anyway, even though a user is still on-line.
16) Added code so the " * Origin:" line will not be formated, but will
instead appear as a single line (as long as the MARGIN is >= 72.)
17) Added code where if you enter "MSGTOSS <rtn>" all command line
switches will be neatly displayed.
18) Added code to display the affected AREA: when an error message is
displayed such as duplicate, oversized, bad date, etc.
------------------ Version 1.3 (03/31/90) ----------------
1) Added "WORKDIR---->" parameter to the MSGTOSS.CFG file.
2) Added "LOGDIR----->" parameter to the MSGTOSS.CFG file.
3) Added "BLANKMSG--->" parameter to the MSGTOSS.CFG file.
4) Added the /FIXC command line switch
5) Added the /WDIR command line switch
6) Modified the display functions (purging, sizing, expanding) to be
more connsistant.
7) Added to the status line the number of messages left to process
(count-down), updated with new packet.
8) Added code to check for message base corruption during mailwaiting
& pre-counting phases, execute FIXMSG is /FIX or /FIXC is active.
9) Added time statistics, purging totals & messages skipped to the
MSGTOSS.LOG file
10) Fixed bug where an extremely small packet from net 269 (or other
net with 0DH in message header) may not always get deleted by
MSGTOSS, causing repeated tossing.
11) Fixed bug where MSGTOSS may not correctly set position 82 of the
PAGE: 43
MSGTOSS Version 1.3
checkpoint record (last record in message file) when MAINT%LO and
MAINT%HI are each set to 100 (for ELASTIC operation).
12) Added code so the " Origin:" line will always be formated to a
margin of 79, (as long as the MARGIN is >= 72.)
13) Fixed minor bug where if message base is 100% full the /STAT
command may report number of free records to be -1 (vice 0),
throwing off the Full% column.
14) Added code to make sure MAINT%LO and MAINT%HI are properly set and
abort if not proper ( %LO < %HI, within 0-100).
15) Added code to PAGE excess users to disk of MSGTOSS runs out of
memory during the purging or mailwaiting phases. MSGTOSS could
only handle about 2000 users before, if exceeded would result in
"out of string space" error. New limit is 32000, but is slowed
down if paging is required.
16) New parameter LOGDIR allows selection of where the MSGTOSS.LOG,
MSGTOSS.ERR & MSGTOSS.DUP go.
17) New parameter WORKDIR (work directory, on by /WDIR switch) can be a
RAM disk that will be used (if enough space available) to copy the
message base being purged, sized, or the MSGTOSS.EID file while
tossing. MSGTOSS will automatically copy to/from and delete as
required to keep RAM disk cleared. In addition, if paging excess
users to disk is required, MSGTOSS will use the RAM disk if
possible.
18) New parameter BLANKMSG (in conjunction with new /FIXC switch) will
copy a small, blank message base (you create via RBBS's CONFIG.EXE)
if MSGTOSS detects a corrupt message base and FIXMSG was unable to
fix twice. Corrupt message base will be renamed to *.BAD
19) Revised documentation, added table of contents.
PAGE: 44